package com.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * @Author chengdehua
 * @Email dehua.cheng@bluechips.net.cn
 * @Date 2019-11-07
 */
public class FastJsonUtils {
    /**
     * 获取json数组中v的值
     * @param jsonArray
     * @return
     */
    public static String[] getSelectedValArray(JSONArray jsonArray){
        String []vArr=null;
        if(jsonArray!=null&&jsonArray.size()>0){
            vArr=new String[jsonArray.size()];
            Iterator<Object> it = jsonArray.iterator();
            for(int i=0;i<jsonArray.size();i++){
                JSONObject jsonObject=(JSONObject)jsonArray.get(i);
                vArr[i]=jsonObject.getString("v");
            }
        }
        return vArr==null?new String[]{}:vArr;
    }

    /**
     * 返回被选中的json数组
     * @param dicList 字典中具体类型的所有选项
     * @param vArr 被选中的值
     * @return
     */
    public static JSONArray getSelectedJSONArray(List<Map<String,String>> dicList, String []vArr){
        List<Map<String, String>> nvList = new ArrayList<>();
        if(dicList!=null&&dicList.size()>0){
            for(Map<String,String>map: dicList){
                String v = String.valueOf(map.get("v"));
                if(StringUtils.isNotBlank(v)){
                    for (String v1: vArr){
                        if(v.equals(v1)){
                            nvList.add(map);
                        }
                    }
                }
            }
        }
        return (JSONArray) JSON.toJSON(nvList);

    }
}
